#define _CRT_SECURE_NO_WARNINGS


//////////  strstr
//
//#include <stdio.h>
//#include <assert.h>
//#include <string.h>
//
//char* my_strstr(char* s1, char* s2)
//{
//	assert(s1 && s2);
//
//	char* p1 = NULL;
//	char* p2 = NULL;
//	char* cur = s1;
//
//	while (*cur)
//	{
//		p1 = cur;
//		p2 = s2;
//
//		if (strlen(p1) < strlen(p2))
//		{
//			return NULL;
//		}
//
//		while (*p2 && *p1 == *p2)
//		{
//			p1++;
//			p2++;
//		}
//
//		if (!(*p2))
//		{
//			return cur;
//		}
//
//		cur++;
//	}
//
//	return NULL;
//}
//
//int main()
//{
//	char arr1[1000] = { 0 };
//	gets(arr1);
//	char arr2[1000] = { 0 };
//	gets(arr2);
//
//	char* ret = my_strstr(arr1, arr2);
//
//	printf("%s\n", ret);
//
//	return 0;
//}



////////////////   qsort
//
//#include <stdio.h>
//
//int cmp(const void* a, const void* b)
//{
//	return *(int*)a - *(int*)b;
//}
//
//void swap(char* buf1, char* buf2, int width)
//{
//	int i = 0;
//	for (i = 0; i < width; i++)
//	{
//		char tmp = *buf1;
//		*buf1 = *buf2;
//		*buf2 = tmp;
//		buf1++;
//		buf2++;
//	}
//}
//
//void my_qsort(void* bese, int sz, int width, int (*cmp)(const void*, const void*))
//{
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; j < sz - 1 - i; j++)
//		{
//			if ((cmp((char*)bese + j * width, (char*)bese + (j + 1) * width)) > 0)
//			{
//				swap((char*)bese + j * width, (char*)bese + (j + 1) * width, width);
//			}
//		}
//	}
//}
//
//int main()
//{
//	int arr[1000] = { 0 };
//	int n = 0;
//	scanf("%d", &n);
//
//	for (int i = 0; i < n; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//
//	my_qsort(arr, n, sizeof(int), cmp);
//
//	for (int i = 0; i < n; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//
//	return 0;
//}